home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / M / MacOberon.cpt / MacOberonDoc.sit / OG0.Text (.txt) next >
Encoding:
Oberon Text  |  1990-11-07  |  6.9 KB  |  115 lines  |  [.Ob./.Ob*]

  1. Syntax20.Scn.Fnt
  2. Syntax10.Scn.Fnt
  3. Syntax14.Scn.Fnt
  4. Syntax12.Scn.Fnt
  5. Syntax16.Scn.Fnt
  6. Syntax12i.Scn.Fnt
  7. The Oberon Guide
  8. System Release 1.2
  9. rg Gutknecht
  10. Abstract
  11. This guide provides a concise and detailed description of the Oberon system on three different levels: the
  12. user's level, the level of programmers of tools, and the level of implementors of new viewer classes. In
  13. particular, the guide features a complete documentation of standard commands, a commented series of
  14. important interface definitions, and a tutorial collection of Oberon programs exemplifying the typical
  15. Oberon programming style.
  16. Table of Contents
  17. Abstract
  18. Introduction
  19.    History
  20.    Design Principles
  21.    Acknowledgement
  22. User's Guide
  23.    Commands and Tools
  24.    The Edit Tool Package
  25.    The System Tool Package
  26.    The Compiler Tool Package
  27.    The Miscellaneous Tool Package
  28. Guide for Programmers of Commands
  29.    Oberon's module hierarchy
  30.    The Display System
  31.    The Text System
  32.    The Oberon Core
  33.    Tutorial Examples
  34.       Write time stamp to system log
  35.       Process selected text
  36.       Open viewer in system track, generate, and display text data
  37.       Open viewer in user track and display existing text
  38.       Grow text viewer
  39.       Process viewer text or sequence of texts, depending on context
  40.       Delete selected part of text in marked viewer
  41.       Copy most recently selected text part to caret's position
  42.       Copy font from visibly marked position to text selection
  43.       Move caret to next character written in italics
  44. Guide for Programmers of new Frame Classes and Viewer Types
  45.    Frames as Active Objects
  46.    Standard Menu Viewers
  47.    The Canonical Decomposition of an Application
  48.    Tutorial Examples 1: Frame oriented operations
  49.       Display text line within text frame
  50.       Track caret
  51.    Tutorial Examples 2: Text oriented operations
  52.       Save text in buffer
  53.       Insert contents of buffer in text
  54. Literature
  55.    Ceres Workstation
  56.    Oberon Language
  57.    Oberon System
  58. List of Oberon Error Numbers
  59.    Incorrect use of language Oberon-2
  60.    Limitations of implementation
  61.    Run-time Trap Numbers
  62. Introduction
  63. History
  64. Oberon is simultaneously the name of a project and of its outcome. The project was started by Niklaus
  65. Wirth and the author late in 1985 with the goal of developing a modern and portable operating system for
  66. personal workstations. Its results are an implementation of the system for the Ceres computer and a
  67. programming language (see section Literature).
  68. The development of the language Oberon needs perhaps a short justification. It became quite inevitable
  69. because the type-system of available languages turned out to be too restrictive to express the desired data
  70. model in a natural and safe way. We refer to report for a definition of the new language, and to the third and
  71. fourth chapter of this text for some examples of its application.
  72. Design Principles
  73. For the present, we focus on the system Oberon, beginning with a brief overview of its design principles. The
  74. underlying dynamic model is extremely simple. There exists a single process acting as a common carrier of
  75. multiple tasks. This process repetitively interprets commands, which are the official entities of execution in
  76. Oberon. Commands are atomic actions operating on the global state of the system. Unlike customary
  77. interactive programs, they rigorously avoid direct dialogs with the system user.
  78. The following typical examples indicate the bandwidth covered by the concept of command: Placing the
  79. caret, inserting a character into a text, selecting a piece of text, deleting a selected piece of text, applying a
  80. new font to a piece of text, searching a pattern in a text, compiling a software module, opening a viewer,
  81. backing up a sequence of files to diskette, and displaying a directory. We emphasize that the execution of a
  82. command always results in non-volatile information. For example, in the last example, this means that the
  83. displayed directory is a text that might immediately undergo further processing. Typically, commands report
  84. the outcome of their execution in the form of an entry in the system-log. Therefore, the log provides a
  85. complete protocol of the current session.
  86. Commands are initiated by input actions. Apart from a few universal operations, every input action is
  87. connected with a displayed viewer, to which its further handling is delegated. A viewer in Oberon is a
  88. rectangular area on the screen that can display any kind of data. Most viewers feature a thin frame and a
  89. title-bar containing a menu. Any mouse-oriented input is handled by the viewer the mouse points to. Data
  90. from the keyboard is immediately passed over to the current so-called focus-viewer. We notice that
  91. command interpretation is a highly decentralized activity in Oberon and, as such, is a substantial
  92. contribution to what we consider as Oberon's most important quality, namely unlimited extensibility.
  93. Implementing a new viewer type is a very powerful but also quite far-reaching method to extend the
  94. Oberon system. It is only appropriate in conjunction with the installation of a new class of displayable
  95. objects (for example graphics or tables). The fourth chapter will provide more insight into this topic.
  96. A more moderate way to increase the system's functionality consists in adding new commands operating on
  97. objects of an already existing class (for example a language compiler operating on text). We shall see in the
  98. third chapter that Oberon's open and coherent modular architecture provides effective support for that.
  99. Practically all system ingredients and resources are directly accessible and usable via modular interfaces on
  100. as high a level of abstraction as possible.
  101. We should deduce from the foregoing that there is no symbolic wall in Oberon separating actual users from
  102. developers. Users are encouraged to customize the system and tailor it to their individual needs by designing
  103. and implementing private commands and facilities. Little is "hardwired" in the system. However, there are
  104. several general conventions and existing tools. They are presented in the next chapter.
  105. Acknowledgement
  106. I gratefully acknowledge Niklaus Wirth's initiative and willingness for travelling through the adventures of
  107. designing and building a new workstation, a new language, and a new operating system, escpecially under
  108. the given severe restrictions of personal resources. Without his competence and extraordinary commitment
  109. this mammoth-project could not have been successfully completed. I am also very grateful for the
  110. possibility to include an extract of Niklaus Wirth's Draw guide in the first chapter. My thanks further go to
  111. the Oberon user's community, in particular to Martin Reiser, Hans-Peter M
  112. ssenb
  113. ck, and Beverly Sanders
  114. for their constructive critisism and valuable suggestions for improvements.
  115.